package com.nhncorp.pleiades.protocol;

import com.nhncorp.pleiades.hadoop.VersionedProtocol;

public interface LockAdminProtocol extends VersionedProtocol {

  public static final long versionID = 1L;
  
  public String[] admin_listPath(AdminLockInfo lockInfo);
  
  public LockMetaData[] admin_listAll(AdminLockInfo lockInfo);
  
  public LockMetaData[] admin_listByOwner(AdminLockInfo lockInfo);
  
  public LockMetaData[] admin_listById(AdminLockInfo lockInfo);
  
  public LockMetaData admin_getMeta(AdminLockInfo lockInfo);
  
  public LockMetaData[] admin_getMetaList(AdminLockInfo lockInfo);
  
  public boolean admin_lock(AdminLockInfo lockInfo);
  
  public boolean admin_release(AdminLockInfo lockInfo);
  
  public boolean admin_releaseByOwner(String owner);
  
  public boolean admin_releaseByService(String serviceId);
  
  public boolean admin_releaseAll();
  
  public boolean admin_create(AdminLockInfo lockInfo, boolean overwrite);
  
  public boolean admin_delete(AdminLockInfo lockInfo, boolean recursive);
  
  public boolean admin_set(AdminLockInfo lockInfo, String keyword);
  
  public boolean admin_format();
  
  public boolean isPrimaryPleiades();

}
